import { axios } from '@/utils/request'

/**
 * 查询角色列表
 * @param query
 * @returns {*}
 */
export function pageRole(query) {
  return axios({
    url: '/system/role/page',
    method: 'get',
    params: query
  })
}

/**
 * 查询角色详细
 * @param roleId
 * @returns {*}
 */
export function getRole(roleId) {
  return axios({
    url: '/system/role/' + roleId,
    method: 'get'
  })
}

/**
 * 新增角色
 * @param data
 * @returns {*}
 */
export function addRole(data) {
  return axios({
    url: '/system/role',
    method: 'post',
    data: data
  })
}

/**
 * 修改角色
 * @param data
 * @returns {*}
 */
export function updateRole(data) {
  return axios({
    url: '/system/role',
    method: 'put',
    data: data
  })
}

/**
 * 角色数据权限
 * @param data
 * @returns {*}
 */
export function dataScope(data) {
  return axios({
    url: '/system/role/dataScope',
    method: 'put',
    data: data
  })
}

/**
 * 角色状态修改
 * @param roleId
 * @param status
 * @returns {*}
 */
export function changeRoleStatus(roleId, status) {
  const data = {
    roleId,
    status
  }
  return axios({
    url: '/system/role/changeStatus',
    method: 'put',
    data: data
  })
}

/**
 * 删除角色
 * @param roleId
 * @returns {*}
 */
export function delRole(roleId) {
  return axios({
    url: '/system/role/' + roleId,
    method: 'delete'
  })
}

/**
 * 查询角色已授权用户列表
 * @param query
 * @returns {*}
 */
export function allocatedUserList(query) {
  return axios({
    url: '/system/role/authUser/allocatedList',
    method: 'get',
    params: query
  })
}

/**
 * 查询角色未授权用户列表
 * @param query
 * @returns {*}
 */
export function unallocatedUserList(query) {
  return axios({
    url: '/system/role/authUser/unallocatedList',
    method: 'get',
    params: query
  })
}

/**
 * 取消用户授权角色
 * @param data
 * @returns {*}
 */
export function authUserCancel(data) {
  return axios({
    url: '/system/role/authUser/cancel',
    method: 'put',
    data: data
  })
}

/**
 * 批量取消用户授权角色
 * @param data
 * @returns {*}
 */
export function authUserCancelAll(data) {
  return axios({
    url: '/system/role/authUser/cancelAll',
    method: 'put',
    params: data
  })
}

/**
 * 授权用户选择
 * @param data
 * @returns {*}
 */
export function authUserSelectAll(data) {
  return axios({
    url: '/system/role/authUser/selectAll',
    method: 'put',
    params: data
  })
}

/**
 * 根据角色ID查询部门树结构
 * @param roleId
 * @returns {*}
 */
export function deptTreeSelect(roleId) {
  return axios({
    url: '/system/role/deptTree/' + roleId,
    method: 'get'
  })
}
